<?php
/**
 * Descripción de "paginas.php":
 * Objeto que carga de la base de datos el contenido de la página de tal manera
 * que se vea como una página común.
 *
 * @author peregrina
 */


class paginas extends comun {
    

    function __construct($from, $tipo, $id) {
        parent::__construct($from, $tipo, $id);
    }
    
    //Cuando el ID está definido
    function id_definido(){
        //Hacemos el query
        $res = $this->bdd->query("select * from Paginas where PID = '$this->id';");
        if(!isset($res)){
            //ID no encontrado
            $GLOBALS["HTTP_Status"] = "404";
            $this->HTML["titulo"] = "Página no encontrada";
            $this->HTML["cuerpo"] .= "<h1>". $this->HTML["titulo"] ."</h1>\n<p>La página no existe{$this->id}.</p>";
        }
        else{
            //ID encontrado
            $autor = $this->bdd->query("select Nombre from Usuarios where UID = '{$res["Autor"]}';");
            //Si es el autor, poner boton de editar
            $editar = "";
            if ($GLOBALS["aut"]>1){
                $editar .= " <input type='button' value='Editar' onclick= \"post('?pid=crear',{editar:'{$res["PID"]}'})\"/></form>"; 
            }
            $fecha = strftime("%A, %e de %B de %Y", strtotime($res["FechaHora_creacion"]));
            $this->HTML["titulo"] = $res["Nombre"];
            $this->HTML["cuerpo"] .= <<<FIN
            <h1><a href='?pid'>Páginas:</a> {$res["Nombre"]}$editar</h1>
            <info>Creado por {$autor["Nombre"]} el $fecha (Última modificación: {$res["FechaHora_edicion"]})</info><br /><br />
            {$res["Contenido"]}
FIN;
        }
    }
    
    //Cuando no hay ID, se carga una lista
    function id_no_definido(){
        //Buscamos el índice o el último ID
        if(!empty($_GET["i"])){
            $i = $_GET["i"];
        }
        else{
            //Obtenemos el último set
            $res = $this->bdd->multiquery("select * from (select PID, Nombre from Paginas order by PID desc limit {$GLOBALS["iph"]}) Paginas order by PID;");
            $i = (isset($res[0]["PID"]))?$res[0]["PID"]:0;
        }
        //Hacemos el query
        $res = $this->bdd->multiquery("select * from (select PID, Nombre from Paginas where PID>='$i' order by PID limit {$GLOBALS["iph"]}) Paginas order by PID desc;");
        //Creamos la lista
        if(!empty($res)){
            $lista = "<ul>";
            foreach($res as $pagina){
                $lista .= "<li><a href=\"?pid=".$pagina["PID"]."\">".$pagina["Nombre"]."</a></li>\n\t\t";
            }
            $lista .= "</ul>";
            $pid_u = $res[0]["PID"];
            $siga = $this->sig_ant(true, "p", $this->from, $pid_u);
            $anta = $this->sig_ant(false, "p", $this->from, $i);

        }
        else{
            $lista = "No se han creado páginas.";
            $siga = $anta = "";
        }
        
        //Si el usuario está iniciado
        $crear = ($GLOBALS["aut"]>0)?"<input type='button' onclick=\"window.location='?pid=crear'\" value='Crear página' />":"";
        
        //Construimos el HTML
        $this->HTML["titulo"] = $GLOBALS["nombre_sitio"];
        $this->HTML["cuerpo"] .= <<<FIN
        <h1>{$this->HTML["titulo"]}</h1>
            $lista
            <br />
            $anta $siga <br />$crear<br />
FIN;
    
        

    }
    
    //Autenticación
    function autor(){
        $this->HTML["titulo"]="Error, usuario no autenticado";
        $this->HTML["cuerpo"]="<h1>{$this->HTML["titulo"]}</h1><p>Necesitas iniciar sesión para poder crear contenido.</p>";
    }
    
    //Crear página
    function crear(){
        $this->HTML["titulo"] = "Crear página";
        $this->HTML["cuerpo"] .= <<<FIN
        <h1>{$this->HTML["titulo"]}</h1>
             <form method="POST" action="?pid=crear" class="edicion">
             <input type="text" name="nombre" value="Título" class="noventa"><br />
             <textarea name="contenido" id="editor">Contenido</textarea><br />
             <input type="submit" name="guardando" value="Guardar" class="noventa">
             </form>
FIN;
        
    }
    
    //Editar página
    function editar(){
        //Variables
        $id = $this->bdd->mysqli->real_escape_string($_POST["editar"]);
        //Obtener información
        $res = $this->bdd->query("select * from Paginas where PID = '$id';");
        
        $this->HTML["titulo"] = "Editando";
        $this->HTML["cuerpo"] .= <<<FIN
        <h1>{$this->HTML["titulo"]}</h1>
             <form method="POST" action="?pid=crear" class="edicion">
             <input type="text" name="nombre" value="{$res["Nombre"]}" class="noventa" ><br /><br />
             <textarea name="contenido" id="editor">{$res["Contenido"]}</textarea><br />
             <input type="hidden" name="editar" value="{$res["PID"]}"/>
             <input type="submit" name="guardando" value="Guardar">
             <input type="button" value="Borrar" onclick="post('?pid=borrar',{editar:'{$res["PID"]}'});"/>
             </form>
FIN;
        
    }
    
    
    
    //Guardar la información en la base de datos
    function guardar(){
        //Variables
        $nombre = $this->bdd->mysqli->real_escape_string($_POST["nombre"]);
        $contenido = $this->bdd->mysqli->real_escape_string($_POST["contenido"]);
        $autor = $this->bdd->mysqli->real_escape_string($_COOKIE["Autor"]);
        $id = $this->bdd->mysqli->real_escape_string($_POST["editar"]);
        
        //Crear
        if(empty($_POST["editar"])){
            //Inserción
/*             $i = new basededatos();
            $i->insert("insert into Paginas values (NULL, '$nombre', '$contenido', Buscar_UID('$autor'), NULL, NULL);"); */
			$this->bdd->insert("insert into Paginas values (NULL, '$nombre', '$contenido', Buscar_UID('$autor'), NULL, NULL);");
			
            //Obtener el número de ID
            $res = $this->bdd->query("select PID from Paginas where Autor=Buscar_UID('$autor') order by PID desc limit 1;");
            $id = $res["PID"];
        }
        //Editar
        else{
            //Inserción
            $this->bdd->insert("update Paginas set Nombre='$nombre', Contenido='$contenido' where PID='$id';"); 
        }
        
        //Retornar a la página
        $this->redirect("pid=$id");
    }
    
    
    
}

?>
